﻿/**
 * 给定奇数N，要求构造N个N位的完全平方数，且这些数的数位使用相同的多重集合
 * 首先打表观察一下，发现有一组明显的数，形如：
 * 1690000, 1060900, 1006009
 * 9610000, 9060100, 9006001
 * 1960000
 * 因此对于N>=3, 其零的数量为N-3，然后将零放到合适的地方即可
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using llt = long long;
using vi  =vector<int>;
using pii = pair<int, int>;
using vvi = vector<vi>;
using vpii = vector<pii>;

int N, M, Q, K;
vector<string> Ans;

void procji(){
    if(1 == N) return (void)(cout << "1\n");

    int left = N - 3;
    int zero = left;
    Ans.clear();
    Ans.reserve(N);
    string start("169");
    for(int i=0;i<zero;++i)start.push_back('0');
    
    Ans.emplace_back(start);
    for(int i=0;i<zero/2;++i){
        int t = i + 1;
        string s("1");
        for(int j=0;j<t;++j) s.push_back('0');
        s.push_back('6');
        for(int j=0;j<t;++j) s.push_back('0');
        s.push_back('9');
        for(int j=0;j<zero-t-t;++j) s.push_back('0');
        Ans.emplace_back(s);
    }
    
    start = "196";
    for(int i=0;i<zero;++i)start.push_back('0');
    Ans.emplace_back(start);

    start = "961";
    for(int i=0;i<zero;++i)start.push_back('0');
    Ans.emplace_back(start);

    for(int i=0;i<zero/2;i+=1){
        int t = i + 1;
        string s("9");
        for(int j=0;j<t;++j) s.push_back('0');
        s.push_back('6');
        for(int j=0;j<t;++j) s.push_back('0');
        s.push_back('1');
        for(int j=0;j<zero-t-t;++j) s.push_back('0');
        Ans.emplace_back(s);
    }

    assert(Ans.size() >= N);
    for(int i=0;i<N;++i) cout << Ans[i] << "\n";
    return;
}

void proc(){
    if(N & 1) return procji();
    // assert(N >= 8);
    assert(0);
    return;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    cin >> nofkase;
    while(nofkase--){
        cin >> N;
        proc();
    }
    return 0;
}